package com.hsy.order.utils

import android.content.Context
import com.hsy.order.Application

/**
 * Created by hsy on 2016/4/8.
 */
object UnitUtil {
    private val scale = Application.instance.resources.displayMetrics.density
    private val fontScale = Application.instance.resources.displayMetrics.scaledDensity

    /**
     * 将px值转换为dip或dp值，保证尺寸大小不变
     *
     * @param pxValue （DisplayMetrics类中属性density）
     * @return
     */
    fun px2dip(context: Context, pxValue: Float) = (pxValue / scale + 0.5f).toInt()

    /**
     * 将dip或dp值转换为px值，保证尺寸大小不变
     *
     * @param dipValue （DisplayMetrics类中属性density）
     * @return
     */
    fun dip2px(dipValue: Float) = (dipValue * scale + 0.5f).toInt()

    /**
     * 将px值转换为sp值，保证文字大小不变
     *
     * @param pxValue （DisplayMetrics类中属性scaledDensity）
     * @return
     */
    fun px2sp(pxValue: Float) = (pxValue / fontScale + 0.5f).toInt()

    /**
     * 将sp值转换为px值，保证文字大小不变
     *
     * @param spValue （DisplayMetrics类中属性scaledDensity）
     * @return
     */
    fun sp2px(spValue: Float) = (spValue * fontScale + 0.5f).toInt()
}